/*
 * Created on 2006-12-25
 *
 */
package jacky.lanlan.song.extension.spring.aop.annotation;

import java.lang.annotation.*;//定义标注的时候要导入*，不然找不到类

/**
 * “标记”标注，用于标记某个类或者某个方法，是否使用Null Object模式。
 * <p>
 * <b style="color:red">只适用于<em>public</em>方法。</b>
 * <p>
 * 当方法返回值是null值时，不返回null到调用者，而是返回一个 代表null值的合法空对象(比如对于List集合类型会返回一个空List)。
 * <p>
 * 建议只在如下情况使用这个标注: <em style="font-weight:bolder;color:blue"> <br>
 * 返回值类型为无行为的JavaBean(比如值对象)或者Collection/Map类</em> <br>
 * 对于有行为的类不推荐使用，因为这样的对象仍然有正确行为，而不是代表“空” 的行为。
 * 
 * @author 宋兰岚
 * @see #jacky
 */
@Retention(RetentionPolicy.RUNTIME)
// 这个标注在运行时解析
@Target( { ElementType.TYPE, ElementType.METHOD })
// 作用于类、接口和方法声明
public @interface ReturnNullObject {}
